// 添加接口定义
interface KeyPoint {
  id: number;
  title: string;
  desc: string;
  keyPoints: string[];
}

interface Comparison {
  id: number;
  aspect: string;
  content: string;
  examples: string[];
}

interface Error {
  id: number;
  error: string;
  correction: string;
  tips: string[];
}

interface Skill {
  id: number;
  name: string;
  desc: string;
  image: string;
  mainPoints: string[];
  steps: KeyPoint[];
  comparisons: Comparison[];
  errors: Error[];
}

// 微信小程序相关类型定义
interface PageData {
  skills: Skill[];
  currentSkill: Skill | null;
  currentSkillId: number;
  feedbackContent: string;
  isSubmitting: boolean;
}

interface CustomEvent {
  currentTarget: {
    dataset: {
      skillId?: number;
    };
  };
}

interface InputEvent {
  detail: {
    value: string;
  };
}



Page({
  data: {
    skills: [
      {
        id: 1,
        name: '发球',
        desc: '强有力的发球是比赛的开始',
        image: 'https://picsum.photos/400/300?random=serve',
        mainPoints: [
          '站位稳定，双脚分开与肩同宽',
          '抛球垂直向上，高度控制在1-2米',
          '击球点在身体前上方最高处',
          '手臂自然摆动，掌心击球中心'
        ],

        steps: [
          {
            id: 1,
            title: '准备姿势',
            desc: '双脚分开与肩同宽，持球站在发球区，身体微微前倾',
            keyPoints: [
              '双脚站稳，重心略微前移',
              '持球手臂放松，避免过度紧张',
              '目光注视前方场地，观察对方防守位置'
            ]
          },
          {
            id: 2,
            title: '抛球',
            desc: '单手将球垂直抛起，高度约1-2米，保持抛球的稳定性',
            keyPoints: [
              '抛球要垂直上升，避免球发生旋转',
              '控制抛球高度，不要过高或过低',
              '保持手臂动作流畅，避免僵硬'
            ]
          },
          {
            id: 3,
            title: '击球',
            desc: '手臂自然摆动，掌心击球中心位置，注意发力方向和力度',
            keyPoints: [
              '击球点要在最高点稍下方',
              '手掌要张开，保持适当硬度',
              '击球后手臂要顺势前送，完成随挥动作'
            ]
          }
        ],
        comparisons: [
          {
            id: 1,
            aspect: '发球方式',
            content: '常见的发球方式包括：下手发球、上手发球、跳发球等',
            examples: [
              '下手发球：适合初学者，稳定性好',
              '上手发球：力量大，轨迹平直',
              '跳发球：威力最大，但难度也最高'
            ]
          },
          {
            id: 2,
            aspect: '发球策略',
            content: '根据比赛情况选择不同的发球策略',
            examples: [
              '攻击性发球：追求直接得分或破坏对方一传',
              '稳定性发球：确保发球成功率，避免失误',
              '变化性发球：通过改变落点和力度迷惑对手'
            ]
          }
        ],
        errors: [
          {
            id: 1,
            error: '抛球不稳定',
            correction: '保持手臂垂直向上抛球，控制抛球高度在1-2米',
            tips: [
              '练习单手抛球的稳定性',
              '保持抛球动作的一致性',
              '避免手腕过度发力'
            ]
          },
          {
            id: 2,
            error: '击球点不准确',
            correction: '在球的最高点稍下方击球，保持击球点的一致性',
            tips: [
              '多练习抛球和击球的配合',
              '注意观察球的运动轨迹',
              '保持身体平衡和稳定'
            ]
          }
        ]
      },
      {
        id: 2,
        name: '传球',
        desc: '准确传递排球的基本技巧',
        image: 'https://picsum.photos/400/300?random=pass',
        mainPoints: [
          '双手形成传球手型，十指自然分开',
          '用指腹接触球体，不用手掌心',
          '腿部蹬地发力，腰腹协调转动',
          '手指手腕弹推控制方向和力度'
        ],

        steps: [
          {
            id: 1,
            title: '准备姿势',
            desc: '双脚分开与肩同宽，屈膝降低重心，双手自然举起至胸前',
            keyPoints: [
              '双脚分开站稳，膝盖微屈',
              '身体保持平衡，重心略向前',
              '双手提前举起，准备接球'
            ]
          },
          {
            id: 2,
            title: '接球手型',
            desc: '双手形成传球手型，十指自然分开，用指腹接触球体',
            keyPoints: [
              '双手呈半球状，十指自然张开',
              '用指腹接触球，不用手掌心',
              '拇指和食指形成三角形窗口'
            ]
          },
          {
            id: 3,
            title: '传球发力',
            desc: '腿部蹬地发力，通过腰腹协调，手指手腕弹推将球传出',
            keyPoints: [
              '腿部蹬地提供主要动力源',
              '腰腹协调转动，增加传球力量',
              '手指手腕最后弹推，控制方向'
            ]
          }
        ],
        comparisons: [
          {
            id: 1,
            aspect: '传球高度分类',
            content: '根据传球弧度高低可分为不同类型，适用于不同战术',
            examples: [
              '高球传球：弧度高，给攻手充足准备时间，适合强攻',
              '快球传球：弧度低速度快，用于快攻战术配合',
              '平拉开传球：距离远弧度适中，适合边攻手进攻'
            ]
          },
          {
            id: 2,
            aspect: '传球位置选择',
            content: '根据场上位置和战术需要选择不同的传球方式',
            examples: [
              '正面传球：面向攻手传球，准确性高',
              '背传：背对攻手传球，具有隐蔽性',
              '侧传：侧身传球，用于快速转移攻击点'
            ]
          }
        ],
        errors: [
          {
            id: 1,
            error: '传球手型不正确',
            correction: '保持正确的传球手型，用指腹接触球体',
            tips: [
              '多练习传球手型的标准动作',
              '避免用手掌心接球',
              '保持手指的适当张开度'
            ]
          },
          {
            id: 2,
            error: '传球方向和高度不准确',
            correction: '加强目标意识，提高传球的精确度',
            tips: [
              '传球前要观察攻手的位置和准备情况',
              '根据攻手特点调整传球高度',
              '多进行定点传球练习'
            ]
          }
        ]
      },
      {
        id: 3,
        name: '扣球',
        desc: '排球进攻的主要得分方式',
        image: 'https://picsum.photos/400/300?random=spike',
        mainPoints: [
          '助跑节奏由慢到快，最后双脚并拢起跳',
          '身体在空中保持直立，挥臂充分后拉',
          '击球点在身体前上方最高处',
          '全掌接触球体，向下鞭打发力'
        ],

        steps: [
          {
            id: 1,
            title: '助跑起跳',
            desc: '采用三步或四步助跑，节奏由慢到快，最后双脚并拢起跳',
            keyPoints: [
              '助跑节奏要有变化，最后加速',
              '倒数第二步要大，最后一步并脚',
              '起跳时双臂向上摆动增加高度'
            ]
          },
          {
            id: 2,
            title: '空中动作',
            desc: '身体在空中保持平衡，挥臂充分后拉准备击球',
            keyPoints: [
              '身体在空中保持直立姿态',
              '击球手臂充分向后拉开',
              '非击球手保持身体平衡'
            ]
          },
          {
            id: 3,
            title: '击球瞬间',
            desc: '在身体前上方最高点击球，全掌接触球体向下扣击',
            keyPoints: [
              '击球点要在身体前上方',
              '用全手掌击球，接触面积大',
              '击球后手臂要有向下的鞭打动作'
            ]
          }
        ],
        comparisons: [
          {
            id: 1,
            aspect: '扣球技术类型',
            content: '根据击球方式和战术目的可分为不同类型',
            examples: [
              '重扣：力量型扣球，追求速度和力量直接得分',
              '轻扣：技巧型扣球，改变节奏寻找防守空档',
              '吊球：利用手腕变化，将球轻巧地吊到前场空位'
            ]
          },
          {
            id: 2,
            aspect: '不同位置扣球特点',
            content: '场上不同位置的扣球有各自的技术特点和要求',
            examples: [
              '4号位扣球：主攻位置，角度多样化，是主要得分点',
              '3号位扣球：副攻快球，要求起跳时机准确',
              '2号位扣球：强攻位置，多为调整攻，要求适应性强'
            ]
          }
        ],
        errors: [
          {
            id: 1,
            error: '助跑起跳时机不准确',
            correction: '根据传球的弧度和速度调整助跑起跳时机',
            tips: [
              '多观察二传手的传球习惯',
              '练习不同高度传球的起跳时机',
              '加强与二传手的配合训练'
            ]
          },
          {
            id: 2,
            error: '击球点选择不当',
            correction: '在身体前上方的最佳击球点击球',
            tips: [
              '加强跳跃能力训练',
              '练习空中身体控制',
              '提高击球点的判断能力'
            ]
          }
        ]
      },
      {
        id: 4,
        name: '垫球',
        desc: '用前臂接触来球的防守技巧',
        image: '/static/images/volleyball_dig.png',
        mainPoints: [
          '双脚分开略宽于肩，膝盖弯曲降低重心',
          '双手重叠握拳，前臂并拢伸直',
          '用前臂桡骨内侧平面击球',
          '通过蹬腿和提肩控制球的方向'
        ],

        steps: [
          {
            id: 1,
            title: '准备姿势',
            desc: '双脚分开略宽于肩，膝盖弯曲降低重心，身体前倾',
            keyPoints: [
              '双脚分开站稳，重心降低',
              '膝盖弯曲，身体略向前倾',
              '保持随时移动的准备状态'
            ]
          },
          {
            id: 2,
            title: '手臂动作',
            desc: '双手重叠握拳，前臂并拢伸直，形成平整的垫球面',
            keyPoints: [
              '双手重叠，拇指并拢向下',
              '前臂紧贴并拢，形成平面',
              '手臂与身体成适当角度'
            ]
          },
          {
            id: 3,
            title: '垫球动作',
            desc: '用前臂平面击球，通过蹬腿和提肩控制球的方向',
            keyPoints: [
              '用前臂桡骨内侧平面击球',
              '击球时手臂保持稳定不摆动',
              '通过腿部和肩部调节垫球角度'
            ]
          }
        ],
        comparisons: [
          {
            id: 1,
            aspect: '垫球应用场景',
            content: '垫球技术在不同比赛情况下的具体应用',
            examples: [
              '一传垫球：接发球，要求垫球到位准确',
              '防守垫球：接扣球，重点是控制球不落地',
              '救球垫球：紧急情况下的保护性垫球'
            ]
          },
          {
            id: 2,
            aspect: '垫球高度控制',
            content: '根据战术需要和场上情况控制垫球的高度',
            examples: [
              '高垫球：给队友充足的准备和调整时间',
              '中等高度垫球：便于快速组织进攻',
              '低垫球：紧急情况下的自救性垫球'
            ]
          }
        ],
        errors: [
          {
            id: 1,
            error: '垫球时手臂分开',
            correction: '保持双臂紧贴并拢，形成稳定的击球面',
            tips: [
              '加强手臂力量和控制训练',
              '练习标准的垫球手型',
              '注意击球瞬间的手臂固定'
            ]
          },
          {
            id: 2,
            error: '击球部位不正确',
            correction: '用前臂桡骨内侧平面击球，避免用手腕',
            tips: [
              '明确正确的击球部位',
              '避免手腕主动参与击球',
              '多练习标准垫球动作'
            ]
          }
        ]
      },
      {
        id: 5,
        name: '防守',
        desc: '接应对方进攻的防守技术',
        image: '/static/images/volleyball_save.png',
        mainPoints: [
          '观察对方进攻意图，选择合适防守位置',
          '保持低重心，随时准备快速移动',
          '根据来球性质选择合适的防守技术',
          '重扣用垫球，轻扣吊球用传球技术'
        ],

        steps: [
          {
            id: 1,
            title: '防守准备',
            desc: '观察对方进攻意图，选择合适的防守位置和姿态',
            keyPoints: [
              '观察对方攻手的习惯和特点',
              '根据战术要求选择防守位置',
              '保持低重心，随时准备移动'
            ]
          },
          {
            id: 2,
            title: '移动技术',
            desc: '快速准确地移动到球的落点，保持身体平衡',
            keyPoints: [
              '使用交叉步或滑步快速移动',
              '移动中保持身体重心稳定',
              '及时调整身体朝向面对来球'
            ]
          },
          {
            id: 3,
            title: '防守技术选择',
            desc: '根据来球的性质选择合适的防守技术动作',
            keyPoints: [
              '重扣球主要使用垫球技术',
              '轻扣和吊球可使用传球技术',
              '特殊情况使用单手或鱼跃救球'
            ]
          }
        ],
        comparisons: [
          {
            id: 1,
            aspect: '防守技术分类',
            content: '根据来球特点选择不同的防守技术',
            examples: [
              '接重扣：采用低姿态垫球，重点是控制球',
              '接轻扣：可用传球技术，便于组织反击',
              '接吊球：快速移动，多用传球技术处理'
            ]
          },
          {
            id: 2,
            aspect: '防守区域责任',
            content: '不同位置球员的防守区域和责任分工',
            examples: [
              '前排防守：主要负责吊球和轻扣的防守',
              '后排防守：主要负责重扣球的防守',
              '边线防守：注意判断球的出界和角度球'
            ]
          }
        ],
        errors: [
          {
            id: 1,
            error: '防守反应速度慢',
            correction: '提高观察判断能力和身体反应速度',
            tips: [
              '加强专项反应速度训练',
              '提前观察对方攻手的动作',
              '保持高度的注意力集中'
            ]
          },
          {
            id: 2,
            error: '防守位置选择不当',
            correction: '根据对方进攻特点和己方战术调整位置',
            tips: [
              '学习和掌握防守战术',
              '加强与队友的沟通配合',
              '根据比赛情况灵活调整'
            ]
          }
        ]
      },
      {
        id: 6,
        name: '拦网',
        desc: '在网前阻挡对方进攻的防守技巧',
        image: '/static/images/volleyball_block.png',
        mainPoints: [
          '距离球网约一臂距离，双脚分开站稳',
          '观察攻手助跑起跳，选择合适起跳时机',
          '双手在网上方形成拦网面',
          '手指张开向前下方压，封住扣球角度'
        ],

        steps: [
          {
            id: 1,
            title: '拦网准备',
            desc: '站在距离球网约一臂距离，双脚分开，手臂自然举起',
            keyPoints: [
              '距离球网保持适当距离',
              '双脚分开与肩同宽站稳',
              '双手举起至头部上方准备'
            ]
          },
          {
            id: 2,
            title: '起跳时机',
            desc: '观察对方攻手的助跑和起跳，选择合适的起跳时机',
            keyPoints: [
              '观察攻手的助跑节奏和起跳时机',
              '一般比攻手稍晚起跳',
              '保证在空中有足够的滞空时间'
            ]
          },
          {
            id: 3,
            title: '拦网动作',
            desc: '双手在网上方形成拦网面，手指张开向前下方压',
            keyPoints: [
              '双手张开，十指分开增大拦网面',
              '手腕稍向前压，封住扣球角度',
              '保持拦网手型稳定不变形'
            ]
          }
        ],
        comparisons: [
          {
            id: 1,
            aspect: '拦网人数配置',
            content: '根据对方进攻和己方战术选择拦网人数',
            examples: [
              '单人拦网：一个人独立完成，灵活性强',
              '双人拦网：两人配合，拦网面积大',
              '三人拦网：全队参与，拦网严密但移动慢'
            ]
          },
          {
            id: 2,
            aspect: '拦网战术目的',
            content: '不同的拦网战术有不同的目的和效果',
            examples: [
              '封死拦网：完全阻挡扣球路线，直接得分',
              '减速拦网：减慢球速，为后排防守创造条件',
              '诱导拦网：引导攻手扣向己方防守强的区域'
            ]
          }
        ],
        errors: [
          {
            id: 1,
            error: '拦网起跳时机不准确',
            correction: '仔细观察攻手动作，掌握正确的起跳时机',
            tips: [
              '多观察不同攻手的起跳习惯',
              '加强起跳时机的判断训练',
              '与队友多进行拦网配合练习'
            ]
          },
          {
            id: 2,
            error: '拦网手型和角度不正确',
            correction: '保持正确的拦网手型，控制好手腕角度',
            tips: [
              '练习标准的拦网手型动作',
              '注意手腕向前压的角度',
              '加强手指和手腕的力量训练'
            ]
          }
        ]
      }
    ] as Skill[],
    currentSkill: null as Skill | null,
    currentSkillId: 1,
    feedbackContent: '',
    isSubmitting: false
  } as PageData,

  // 修复onLoad函数
  onLoad: function(options: Record<string, any>) {
    const self = this;
    if (self.data.skills && self.data.skills.length > 0) {
      self.setData({
        currentSkill: self.data.skills[0]
      });
    }
  },
  
  // 修复onSkillCardTap函数
  onSkillCardTap: function(e: CustomEvent) {
    const self = this;
    const skillId = e.currentTarget.dataset.skillId;
    if (!skillId) return;
    
    let selectedSkill: Skill | null = null;
    for (let i = 0; i < self.data.skills.length; i++) {
      if (self.data.skills[i].id === skillId) {
        selectedSkill = self.data.skills[i];
        break;
      }
    }
    
    if (selectedSkill) {
      self.setData({
        currentSkill: selectedSkill,
        currentSkillId: skillId
      });
    }
  },
  


  onFeedbackInput: function(e: InputEvent) {
    this.setData({
      feedbackContent: e.detail.value
    });
  },

  onSubmitFeedback: function() {
    if (!this.data.currentSkill) {
      wx.showToast({
        title: '请先选择技巧',
        icon: 'none'
      });
      return;
    }
    
    const self = this;
    if (!self.data.feedbackContent || self.data.feedbackContent.trim() === '') {
      wx.showToast({
        title: '请输入反馈内容',
        icon: 'none'
      });
      return;
    }
    
    self.setData({
      isSubmitting: true
    });
    
    // 模拟提交反馈
    setTimeout(function() {
      wx.showToast({
        title: '反馈提交成功',
        icon: 'success'
      });
      self.setData({
        feedbackContent: '',
        isSubmitting: false
      });
    }, 1000);
  }
});
